//search小仓库


import { reqCartList, reqUpdateCheckedById } from "@/api";


//仓库
//actions：处理actions，可以书写自己的业务逻辑，也可以处理异步
const actions = {
    async getCartList({ commit }, params = {}) {    //params是一个空对象
        //当前这个reqGetSearchInList这个函数在调用获取服务器数据的时候，至少传递一个参数（空对象）
        //params形参，是当用户派发action的时候，第二个参数传递过来的，至少是一个空对象
        let result = await reqCartList(params);
        if (result.code == 200) {
            commit('GETCARTLIST', result.data)
        }
    },

    //发送商品的勾选情况
    async updateCheckedById({ commit }, { skuId, isChecked }) {
        let result = await reqUpdateCheckedById(skuId, isChecked)
        if (result.code == 200) {
            return 'ok'
        } else {
            return Promise.reject(new Error('faile'))
        }
    },
};

//mutations：修改state的唯一手段
const mutations = {
    GETCARTLIST(state, cartList) {
        state.cartList = cartList;
    }
};

//state:仓库存储数据的地方
const state = {
    cartList: {},
};

//getters：理解为计算属性，可以简化仓库数据，让组件获取仓库的数据更加方便
//将Search的需要用到的state数据简化的此处
const getters = {
    cartList(state) {
        return state.cartList[0] || {}
    },
};


export default {
    actions,
    mutations,
    state,
    getters
}
